package com.produto.action;

import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import com.produto.modelo.Tipo;
import com.produto.persistencia.dao.TipoDAO;

public class AdicionarTipoAction {

	private Tipo tipo;
	private List<Tipo> tipos;
	private String controleNome;
	
	@Action(value="salvarTipo", results= {
			@Result(type="redirectAction", name="ok", params= {"actionName", "listarTipo"}),
			@Result(name="emBranco", location="listar-tipos-add.jsp"),
			@Result(name="nomePequeno", location="listar-tipos-add.jsp"),
			@Result(name="nomeRepetido", location="listar-tipos-add.jsp")
		})
	public String execute() {
		
		if(tipo.getNome().equals("")) {
			tipos = new TipoDAO().selectTodos();
			controleNome = "emBranco";
			return "emBranco";
		}
		
		if(tipo.getNome().length() == 1 || tipo.getNome().length() == 2) {
			tipos = new TipoDAO().selectTodos();
			controleNome = "nomePequeno";
			return "nomePequeno";
		}
		
		tipos = new TipoDAO().selectTodos();
		for(Tipo x : tipos) {
			if (x.getNome().equalsIgnoreCase(tipo.getNome())) {
				controleNome = "nomeRepetido";
				return "nomeRepetido";
			}
		}
		
		TipoDAO daot = new TipoDAO();
		daot.insert(tipo);
		controleNome = "ok";
		return "ok";
	}
	
	
	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}
	
	public Tipo getTipo() {
		return tipo;
	}
	
	public void setTipos(List<Tipo> tipos) {
		this.tipos = tipos;
	}
	
	public List<Tipo> getTipos() {
		return tipos;
	}
	
	public void setControleNome(String controleNome) {
		this.controleNome = controleNome;
	}
	
	public String getControleNome() {
		return controleNome;
	}
	
}
